package com.local.order.service;

import com.local.common.util.PageResultUtil;
import com.local.common.util.ResultUtil;
import com.local.order.pojo.Order;

public interface OrderService {

    /**
     * 查询列表，支持翻页
     * @param page
     * @param limit
     * @param sort
     * @param order
     * @param isDeleted
     * @return
     */
    public PageResultUtil findOrderList(Integer page, Integer limit, String sort, String order, Integer isDeleted);


    /**
     * 后台修改订单
     * @param order
     */
    public Integer update(Order order);


    /**
     * 批量修改订单状态为：配货完成
     * @param ids
     * @return
     */
    public String checkDone(Integer[] ids);


    /**
     * 批量修改订单状态为：出库
     * @param ids
     * @return
     */
    public String checkOut(Integer[] ids);


    /**
     * 批量修改订单状态为：商家关闭
     * @param ids
     * @return
     */
    public String close(Integer[] ids);


    /**
     * 生成新订单
     * @param order
     * @return
     */
    public ResultUtil<Order> saveOrder(Order order);

    /**
     * 通过orderNo查询订单
     * @param orderNo
     * @return
     */
    public Order getByOrderNo(String orderNo);

    /**
     * 将超时（30分钟）未支付的订单关闭
     * @param orderId
     * @return
     */
    public Integer timeOutClose(Integer orderId);


    /**
     * 查询用户的订单列表，包含订单的商品
     * @param userId
     * @param page
     * @param limit
     * @param isDeleted
     * @return
     */
    public PageResultUtil<Order> findUserOrderItemList(Integer userId, Integer page, Integer limit, Integer isDeleted);

}
